Un cas de prova (en anglès, test case) en enginyeria del programari és un conjunt de condicions o variables, valors, precondicions, resultats esperats i postcondicions,[1][2] sota les que un enginyer de proves (tester) determina si una aplicació o un sistema de software està funcionant correctament o no. El mecanisme per a determinar si un programa o sistema ha passat correctament o no una prova s'anomena oracle. En algunes configuracions, un oracle pot ser un requeriment o bé un cas d'ús, mentre que en altres situacions pot ser una heurística. Es poden requerir molts casos de prova per a determinar si un programa o sistema es considera prou escrutat per a ser editar. Els casos de prova a vegades se'ls anomena com a scripts de prova (en anglès, test scripts), particularment quan es posen per escrit. Els casos de prova escrits s'acostumen a agrupar en jocs de proves.